#ifndef _EPOLL_SERVER_H_
#define _EPOLL_SERVER_H_

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
#include <ctype.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <sys/epoll.h>
#include <sys/stat.h>
#include <dirent.h>

#include "get_file_type.h"
#include "getline.h"

void send_error(int cfd, int status, char *title, char *text);
int init_listen_fd(int port, int epfd);
void do_accept(int lfd, int epfd);
void disconnect(int cfd, int epfd);
void send_respond(int cfd, int no, char *disp, char *type, int len);
void send_file(int cfd, const char *file);
void http_request(int cfd, const char *file);
void do_read(int cfd, int epfd);
void epoll_run(int port);
void send_dir(int cfd, const char *dirname);
void decode_str(char *to, char *from);
void encode_str(char *to, int tosize, const char *from);
// 十六进制转化为10进制
int hexit(char c);

#endif